The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs.
One important use of computer systems is for retrieving data from a database, which is a set of related files. A database management system (DBMS) creates and manages one or more databases. Today, database management systems can manage any form of data including text, images, sound, and video. Further, large-scale integrated database management systems provide an efficient, consistent, and secure means for storing and retrieving the vast amounts of data.
Many new interfaces are being created that allow the joining of data from across a variety of databases. The databases can be homogeneous, heterogeneous, or federated databases, which cooperate to share a processing load. At times, when using these interfaces, a query to the databases cannot be completed because a table or user-defined function participating in the query is unavailable. This can occur when one of the federated databases or a link to an external data source is simply unavailable. For example, the table or user-defined function may be unavailable because the communications link to the server hosting the data is down or the server itself is off-line or is busy with a save or restore operation.
There are also times when one of the tables being queried or one of the user-defined functions being executed will cause the query to take too long to execute, or even last forever. This could be the case if the system hosting the data is too busy, the data set in question is too large, or simply the access path, query method, or user-defined function is too time consuming.
There are also times when the end user would still find the data useful even if one of the tables or user-defined functions is not available. For example, if the user requests a join of multiple files with a history file, which is used to retrieve data from a date field, then the query results, even without the date from the history file, might still be valuable. In other words, some of the information being joined together, although relevant, is either non-essential or non-critical. Unfortunately, in current database management systems, if all of the information is not available, no information is returned to the user.
Without a better way to handle tables and user-defined functions that are unavailable or too slow, the computer industry will not be able to fully take advantage of joins of data from multiple sources.